import VueScrollTo from "vue-scrollto";

/**
 * 自定义滚动钩子函数，用于设置全局滚动行为
 * @param options - 可选的滚动配置选项，将覆盖默认设置
 * @returns 返回一个包含 VueScrollTo 实例的对象
 */
export default function useScrollto(options = {}) {
  // 设置 VueScrollTo 的默认配置
  VueScrollTo.setDefaults({
    container: "html", // 滚动容器，默认为整个 HTML 文档
    duration: 500, // 滚动动画持续时间（毫秒）
    easing: "ease", // 缓动函数
    offset: 0, // 滚动偏移量
    force: true, // 强制滚动，即使目标元素已经在视口中
    cancelable: true, // 是否可以取消滚动
    onStart: false, // 滚动开始时的回调函数
    onDone: false, // 滚动完成时的回调函数
    onCancel: false, // 滚动取消时的回调函数
    x: false, // 是否水平滚动
    y: true, // 是否垂直滚动
    ...options, // 用户自定义的选项将覆盖默认设置
  });

  // 返回包含 VueScrollTo 实例的对象
  return { VueScrollTo };
}
